#pragma once

class DImage
{
public:
    virtual ~DImage() {}

    virtual unsigned int width() const = 0;
    virtual unsigned int height() const = 0;
};

namespace sf
{
    class Image;
};

class DImageSFML : public DImage
{
public:
	DImageSFML(boost::shared_ptr<sf::Image> sfmlImage);
    ~DImageSFML();
    
    unsigned int width() const;
    unsigned int height() const;

	boost::shared_ptr<sf::Image> sfmlImage();
private:
	boost::shared_ptr<sf::Image> m_image;
};